<?php

namespace PKPass;
namespace PKValidate;
namespace PHPMailer;

include('./Resources/PKPass.php');
include('./Resources/PKValidate.php');
require('./Resources/Vars.php');
require('./Database/connect.php');

use PKPass;
use PKValidate;
use \PHPMailer as PHPMailer;

$sm        = $_GET['send_mail'];
$send_mail = false;

if (!isset($sm)) {
    $send_mail = false;
} else {
    if ($sm == 1) {
        $send_mail = true;
    } else {
        $send_mail = false;
    }
}

if (!isset($_GET['num_pass'])) {
    echo "
      <!DOCTYPE html>
      <html>
      <head>
      <meta charset=\"UTF-8\">
      <script type=\"text/javascript\">
        alert('Número de passbook no válido.');
        window.history.back(-1);
      </script>
      </head>
      </html>
    ";
} else {
    
    $query = "select p.num_pass, p.num_cliente, p.f_pago, p.estatus, cu.nombre as nombre_curso, cu.f_inicio, cu.hora_inicio, cu.hora_fin, cu.direccion,
    cu.horario, cu.descripcion, cu.duracion_dias, cu.latitud, cu.longitud, c.nombre, c.mail, c.a_paterno from cliente as c, curso as cu,
    passbook_curso as p where p.num_curso = cu.num_curso and p.num_cliente = c.num_cliente and p.num_pass = ".$_GET['num_pass'];
    
    $result = mysqli_query($connection, $query);
    $row    = mysqli_fetch_array($result, MYSQLI_ASSOC) or die("Error: " . mysqli_error($connection));
    
    $numero_passbook    = $row['num_pass'];
    $numero_cliente     = $row['num_cliente'];
    $nombre_curso       = utf8_encode($row['nombre_curso']);
    $nombre             = utf8_encode($row['nombre'].' '.$row['a_paterno']);
    $hora_curso         = utf8_encode($row['hora_inicio'].'-'.$row['hora_fin']);
    $direccion_curso    = utf8_encode($row['direccion']);
    $dias_curso         = utf8_encode($row['horario']);
    $duracion           = $row['duracion_dias'];
    $descripcion_curso  = utf8_encode($row['descripcion']);
    $fecha_adquisicion  = utf8_encode($row['f_pago']."T10:30:36+02:00");
    $fecha_curso        = utf8_encode($row['f_inicio']."T10:30:36+02:00");
    $estatus_tem        = $row['estatus'];
    $latitud            = $row['latitud'];
    $longitud           = $row['longitud'];
    $coordenadas        = "";
    $estatus            = utf8_encode("No utilizado");
    $mail_cliente       = $row['mail'];
    
    if ($estatus_tem == 1) {
        $query_fecha  = "select max(fecha) as fecha from accesos_evento where num_pass = $numero_passbook";
        $result_fecha = mysqli_query($connection, $query_fecha);
        $row_fecha    = mysqli_fetch_array($result_fecha, MYSQLI_ASSOC) or die ("Error: ".mysqli_error($connection));
        
        $estatus = utf8_encode("Utilizado el ".$row_fecha['fecha']);
    }
    
    if ($latitud != NULL && $longitud != null) {
        $coordenadas = utf8_encode('"locations" : [{"latitude" : '.$latitud.', "longitude" : '.$longitud.'}],');
    }


//ES IMPORTANTE EL ORDEN DE ESTE REQUIRE
    require('./JSON/cursoJSON.php');

    $validator = new PKValidate();
    $result = $validator->validate($json);

    if ($result == TRUE) {

        $pass = new PKPass();

        $pass->setCertificate($cert_path . $cert_curso);
        $pass->setCertificatePassword($certificate_password);
        $pass->setWWDRcertPath($cert_path . $cert_pem);
        $pass->setJSON($json);
        $pass->addFile($curso_path . 'background.png');
//        $pass->addFile($curso_path . 'backgroung@2x.png');
        $pass->addFile($curso_path . 'icon.png');
//        $pass->addFile($curso_path . 'icon@2x.png');
        $pass->addFile($curso_path . 'logo.png');
//        $pass->addFile($curso_path . 'logo@2x.png');
//        $pass->addFile($curso_path . 'thumbnail.png');
//        $pass->addFile($curso_path . 'thumbnail@2x.png');
        
        if ($send_mail) {
            
            $pool_mail     = "hola@thepool.vg";
            $receiver_mail = $mail_cliente;
            $receiver_name = $nombre;
            $html_body     = "<p>Bienvenido a The Pool, este Passbook es tu identificaci&oacute;n para accesar al centro y es personal e intrasferible.</p>
                          <p>Tu passbook viene como un archivo adjunto en este correo electr&oacute;nico.</p>
                          <p>En automático se guardará en la aplicación Passbook para iPhone y PassWallet para Android.</p>
                          <p>Gracias.</p>";
            
            require_once('./Resources/class.phpmailer.php');
            
            $mail = new PHPMailer(true);
            $mail->IsSendmail();
            $mail->SetLanguage("es");
            $mail->CharSet = 'UTF-8';
            
            try {
                $mail->AddReplyTo($pool_mail, 'The Pool Team');
                $mail->AddAddress($receiver_mail, $receiver_name);
                $mail->SetFrom($pool_mail, 'The Pool Team');
                $mail->Subject = 'Passbook';
                $mail->MsgHTML($html_body);
                $mail->AddAttachment($pass->create(false));
                $mail->Send();
                
            } catch (phpmailerException $e) {
//                echo $e->errorMessage(); //Pretty error messages from PHPMailer
                $pass->clean();
                
                if (isset($_REQUEST['admin'])) {
                    echo "
                    <!DOCTYPE html>
                    <html>
                    <head>
                    <meta charset=\"UTF-8\">
                    <script type=\"text/javascript\">
                      alert('Hubo un error al enviar el passbook por correo electrónico.');
                      window.history.back(-1);
                    </script>
                    </head>
                    </html>
                  ";
                } else {
                    header('Location: http://www.thepool.vg/Pruebas/resumen-de-compras/');
                }
                

            } catch (Exception $e) {
//                echo $e->getMessage(); //Boring error messages from anything else!
                $pass->clean();

                if (isset($_REQUEST['admin'])) {
                    echo "
                    <!DOCTYPE html>
                    <html>
                    <head>
                    <meta charset=\"UTF-8\">
                    <script type=\"text/javascript\">
                      alert('Hubo un error al enviar el passbook por correo electrónico.');
                      window.history.back(-1);
                    </script>
                    </head>
                    </html>
                  ";
                } else {
                    header('Location: http://www.thepool.vg/Pruebas/resumen-de-compras/');
                }
            }


            $pass->clean();

            if (isset($_REQUEST['admin'])) {
                echo "
                    <!DOCTYPE html>
                    <html>
                    <head>
                    <meta charset=\"UTF-8\">
                    <script type=\"text/javascript\">
                      alert('El passbook ha sido enviado al corrreo electrónico del usuario.');
                      window.history.back(-1);
                    </script>
                    </head>
                    </html>
                  ";
            } else {
                header('Location: http://www.thepool.vg/Pruebas/resumen-de-compras/');
            }
        } else {
        
            if (!$pass->create(true)) {
                echo "
                    <!DOCTYPE html>
                    <html>
                    <head>
                    <meta charset=\"UTF-8\">
                    <script type=\"text/javascript\">
                      alert('Hubo un problema al generar tu passbook. \\nPonte en contacto con el personal de The Pool para que te ayuden a solucionar tu problema lo antes posible.');
                      window.history.back(-1);
                    </script>
                    </head>
                    </html>
                  ";
            }
            
            exit;
        }
    } else {
         echo "
      <!DOCTYPE html>
      <html>
      <head>
      <meta charset=\"UTF-8\">
      <script type=\"text/javascript\">
        alert('Hubo un problema al generar tu passbook. \\nPonte en contacto con el personal de The Pool para que te ayuden a solucionar tu problema lo antes posible.');
        window.history.back(-1);
      </script>
      </head>
      </html>
    ";
    }
}
?>
